<header>
    命令清单
</header>
<h2>
    环境相关
</h2>
<h3>
    缓存路径
</h3>
<p>
    查看npm缓存存放路径：
</p>
<pre>
    npm config get cache
</pre>
<h2>
    发布和撤销包
</h2>
<p>
    发布一个普通的包很简单，首先我们需要登录：
</p>
<pre tag>
    npm login
</pre>
<p>
    然后根据提示输入用户名、密码和邮箱即可。为了验证登录是否成功，执行下面命令：
</p>
<pre tag>
    npm who am i
</pre>
<p>
    如果发现正常打印出来用户名就基本说明登录没有问题（登录只需要一次，不是每次发布的时候都需要重新登录）。
</p>
<p>
    当然，你也可以退出登录：
</p>
<pre tag>
    npm logout
</pre>
<p>
    接着，我们需要提前配置好package.json文件，然后执行下面命令即可发布：
</p>
<pre tag>
    npm publish
</pre>
<p>
    如果刚刚发布的包需要撤销（发布一定时间内可以成功，超过一定时间以后，无法撤销）：
</p>
<pre tag>
    npm unpublish yourName@0.0.0
</pre>
<p>
    上面的命令会撤销yourName包发布的0.0.0版本的文件。
</p>
<h2>
    特殊发布
</h2>
<p>
    发布带@的包（就是包名类似：@zxl20070701/xxx的包）需要添加一些额外的参数:
</p>
<pre tag>
    npm publish --access public
</pre>
<p>
    默认情况下，我们发布的包属于latest，如果想发布固定类型的（比如beta或alpha，next等），需要特别标记一下，比如beta:
</p>
<pre tag>
    npm publish --tag=beta
</pre>
<p>
    对应的，安装的时候也可以指明特殊类型：
</p>
<pre tag>
    npm install &lt;pkg&gt;@beta
</pre>
<h2>
    全局安装和卸载
</h2>
<p>
    安装：
</p>
<pre tag>
    npm install -g &lt;pkg&gt;
</pre>
<p>
    卸载
</p>
<pre tag>
    npm uninstall -g &lt;pkg&gt;
</pre>
<h2>
    工具类配置
</h2>
<p>
    普通的包我们都是通过在package.json中配置main、module或browser来指定入口js后发布的，而如果你希望安装后可以通过命令行调用该工具，就需要额外添加一个配置项：bin。
</p>
<p>
    比如发布的是一个工具demo-cli（在bin目录下新建一个脚本文件cli），你需要添加下列配置：
</p>
<pre tag>
{
    "bin": {"demo-cli": "bin/cli"}
}
</pre>
<p>
    发布后，如果是 -g 全局安装，直接在命令行中通过demo-cli即可执行该脚本。
</p>
<h2>
    修改和查看镜像
</h2>
<p>
    有时候我们的npm镜像由于一些原因可能会被修改，可以通过下面命令查看：
</p>
<pre tag>
    npm get registry
</pre>
<p>
    如果打印的地址不是官方镜像，可以通过下面命令恢复：
</p>
<pre tag>
    npm config set registry https://registry.npmjs.org/
</pre>
<h2>
    包标记
</h2>
<p>
    如果已经发布的包过时或别的原因想通知使用者弃用：
</p>
<pre tag>
    npm deprecate &lt;pkg&gt;[@&lt;version&gt;] &lt;message&gt;
</pre>
<h2>
    修改日志级别
</h2>
<p>
    比如设置为“info”级别：
</p>
<pre tag>
    npm config set loglevel "info"
</pre>